Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
Exception in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0
บทความนี้เรามาทำความรู้จักกับ Exception ที่ชื่อว่า IndexOutOfBoundsException กัน ซึ่ง Exception ที่เกิดขึ้นจะแสดงข้อความประมาณด้านล่างException in thread "main" java.lang.IndexOutOfBoundsException: Index: 0, Size: 0 at java.util.ArrayList.rangeCheck(Unknown Source) at java.util.ArrayList.get(Unknown Source) at com.doesystem.CodeFromDoesystem.main(CodeFromDoesystem.java:9)
จากข้อความ Exception ข้างบนเราสามารถแปลข้อความบางส่วนได้ ดังนี้
Exception เกิด Exception
thread "main" ก็คือ thread ที่ชื่อว่า main
IndexOutOfBoundsException เกิด Exception ที่ชื่อว่า IndexOutOfBoundsException
Index: 0 ก็คือ index ที่ 0
Size: 0 ก็คือมีขนาด 0
เมื่อเรานำคำว่า IndexOutOfBoundsException มาแยกแปลแต่ละตัว จะได้ว่า
Index ก็คือ index ของ Array
Out Of Bounds ก็คือ นอกเหนือไปจากตัวมัน นอกเหนือขอบเขตของมัน
Exception ก็คือ เกิด Exception
ดังนั้นจากข้อความแจ้ง Exception เราสามารถสรุปได้คร่าว ๆ ว่า เกิด Exception เกี่ยวกับ index ที่นอกเหนือไปจากตัวมันหรือนอกเหนือขอบเขตของมัน
ดังนั้นลองมาดูโค้ดที่ทำให้เกิด Exception กัน
package com.doesystem; import java.util.ArrayList; import java.util.List; public class CodeFromDoesystem { public static void main(String[] args) throws Exception { ListtestList = new ArrayList (); testList.get(0); } }
จากข้อความและโค้ด CodeFromDoesystem.java:9 ให้เราไปดูบรรทัดที่ 9 จะเห็นว่ามีการ get ค่าที่ index 0 ออกมาจากตัวแปร testList ดังนั้นเราลองไปดูว่า testList มี index กี่ตัว และมีขนาดเท่าไหร่ จากโค้ดจะเห็นมี testList มีขนาด 0 นั่นคือยังไม่มีข้อมูลมี size = 0 เวลา get ค่า index 0 จึงเกิด Exception